/*
Each particle is represented by an alpha-blended texture and interacts with the environment.
*/

#ifndef GUARD_Particle_h
#define GUARD_Particle_h

#include <GL/glut.h>
#include <vector>
#include "Collidable.h"
#include "MovableObject.h"

class Particle : public MovableObject
{
private:
	// fade?
	static GLuint glowTexture;
	const float dampening;

	int age;
	float alpha;
public:
	static const int MAX_COUNT;
	static const int MIN_COUNT;
	static const int SPEED;
	static const int LIFETIME;

	bool dead;

	Particle();

	Collidable* Particle::checkCollision(const std::vector<Collidable*>& plats);
	void move(const std::vector<Collidable*>& plats);
	void draw();
};

#endif